﻿/**
 *\file carte.h
 *\author Raphaël Diana
 */
#ifndef CARTE_H_INCLUDED
#define CARTE_H_INCLUDED
#include <assert.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

/**\enum enseigne*/
typedef enum {AUCUNE, CARREAU, COEUR, PIQUE, TREFLE} enseigne;
/**\enum recto*/
typedef enum {ZERO, DEUX, TROIS, QUATRE, CINQ, SIX, SEPT, HUIT, NEUF, DIX, VALET, DAME, ROI, AS} recto;


/**\struct Carte carte.h*/
typedef struct sCarte
{
    enseigne couleur;
    recto face;
} Carte;

/** \brief Crée une Carte.
 *
 * \param aucun
 * \return Carte
 *
 */

void creerCarte(Carte*);

/** \brief Retourne la valeur d'une Carte.
 * Par rapport à sa face.
 * \param Carte
 * \return entier
 *
 */

int getValeurCarte(const Carte*);

/** \brief Retourne la face d'une Carte.
 *
 * \param Carte
 * \return recto
 *
 */

recto getFaceCarte(const Carte*);

/** \brief Retourne la couleur d'une carte.
 *
 * \param Carte
 * \return enseigne
 *
 */

enseigne getCouleurCarte(const Carte*);

/** \brief Rempli le champ couleur d'une Carte.
 *
 * \param Carte
 * \param enseigne
 * \return vide
 *
 */

void setCouleurCarte(Carte*, enseigne);

/** \brief Rempli le champ face d'une Carte.
 *
 * \param Carte
 * \param recto
 * \return vide
 *
 */

void setFaceCarte(Carte*, recto);

/**\brief affiche une carte*/
/** \brief Affiche une Carte.
 *
 * \param Carte
 * \return vide
 *
 */

void afficherCarte(const Carte*);

#endif
